home *** CD-ROM | disk | FTP | other *** search
- //--- OBJECT WRITE BEGIN ---
- new GuiColorPickerCtrl(ColorPickerDlg) {
- Profile = "GuiDefaultProfile";
- HorizSizing = "right";
- VertSizing = "bottom";
- position = "0 0";
- Extent = "800 600";
- MinExtent = "8 2";
- Visible = "1";
- baseColor = "1.000000 0.000000 1.000000 1.000000";
- pickColor = "0.788235 0.713726 0.600000 1.000000";
- selectorGap = "1";
- displayMode = "Dropper";
- actionOnMove = "1";
-
- new GuiWindowCtrl(GuiPickerDlg) {
- Profile = "GuiWindowProfile";
- HorizSizing = "right";
- VertSizing = "bottom";
- position = "51 39";
- Extent = "358 294";
- MinExtent = "8 2";
- Visible = "1";
- text = "Pick Color";
- maxLength = "255";
- resizeWidth = "0";
- resizeHeight = "0";
- canMove = "1";
- canClose = "1";
- canMinimize = "0";
- canMaximize = "0";
- MinSize = "50 50";
- closeCommand = "endColorDropper();Canvas.popDialog(ColorPickerDlg);";
-
- new GuiColorPickerCtrl(ColorBlendSelect) {
- Profile = "GuiDefaultProfile";
- HorizSizing = "right";
- VertSizing = "bottom";
- position = "9 42";
- Extent = "314 190";
- MinExtent = "8 2";
- Visible = "1";
- baseColor = "0.600000 1.000000 0.000000 1.000000";
- selectorGap = "1";
- displayMode = "BlendColor";
- actionOnMove = "1";
- };
- new GuiSliderCtrl(ColorAlphaSelect) {
- Profile = "GuiSliderProfile";
- HorizSizing = "right";
- VertSizing = "bottom";
- position = "8 238";
- Extent = "293 21";
- MinExtent = "8 2";
- Visible = "1";
- range = "0.000000 1.000000";
- ticks = "255";
- value = "1";
- };
- new GuiColorPickerCtrl(ColorRangeSelect) {
- Profile = "GuiDefaultProfile";
- HorizSizing = "right";
- VertSizing = "bottom";
- position = "328 42";
- Extent = "21 188";
- MinExtent = "8 2";
- Visible = "1";
- Command = "updatePickerBaseColor();";
- baseColor = "1.000000 0.000000 1.000000 1.000000";
- pickColor = "0.600000 1.000000 0.000000 1.000000";
- selectorGap = "1";
- displayMode = "VertColor";
- actionOnMove = "1";
- };
- new GuiTextCtrl(Channel_R_Val) {
- Profile = "GuiTextProfile";
- HorizSizing = "right";
- VertSizing = "bottom";
- position = "14 21";
- Extent = "22 18";
- MinExtent = "8 2";
- Visible = "1";
- text = "R : 1.0";
- maxLength = "255";
- };
- new GuiTextCtrl(Channel_G_Val) {
- Profile = "GuiTextProfile";
- HorizSizing = "right";
- VertSizing = "bottom";
- position = "69 21";
- Extent = "23 18";
- MinExtent = "8 2";
- Visible = "1";
- text = "G : 1.0";
- maxLength = "255";
- };
- new GuiTextCtrl(Channel_B_Val) {
- Profile = "GuiTextProfile";
- HorizSizing = "right";
- VertSizing = "bottom";
- position = "131 21";
- Extent = "22 18";
- MinExtent = "8 2";
- Visible = "1";
- text = "B : 1.0";
- maxLength = "255";
- };
- new GuiTextCtrl(Channel_A_Val) {
- Profile = "GuiTextProfile";
- HorizSizing = "right";
- VertSizing = "bottom";
- position = "198 21";
- Extent = "23 18";
- MinExtent = "8 2";
- Visible = "1";
- text = "A : 1.0";
- maxLength = "255";
- };
- new GuiButtonCtrl() {
- Profile = "GuiButtonProfile";
- HorizSizing = "right";
- VertSizing = "bottom";
- position = "304 238";
- Extent = "47 18";
- MinExtent = "8 2";
- Visible = "1";
- Command = "toggleColorPicker();";
- text = "Drop";
- groupNum = "-1";
- buttonType = "PushButton";
- };
- new GuiButtonCtrl() {
- Profile = "GuiButtonProfile";
- HorizSizing = "right";
- VertSizing = "bottom";
- position = "201 267";
- Extent = "71 17";
- MinExtent = "8 2";
- Visible = "1";
- Command = "DoColorPickerCallback();";
- text = "Ok";
- groupNum = "-1";
- buttonType = "PushButton";
- };
- new GuiButtonCtrl() {
- Profile = "GuiButtonProfile";
- HorizSizing = "right";
- VertSizing = "bottom";
- position = "279 267";
- Extent = "71 17";
- MinExtent = "8 2";
- Visible = "1";
- Command = "Canvas.popDialog(ColorPickerDlg);";
- text = "Cancel";
- groupNum = "-1";
- buttonType = "PushButton";
- };
- };
- };
- //--- OBJECT WRITE END ---
-
- $ColorPickerCallback = ""; // Control that we need to update
- $ColorCallbackType = 1; // ColorI
-
- // This function pushes the color picker dialog and returns to a callback the selected value
- function GetColorI( %currentColor, %callback )
- {
- $ColorPickerCallback = %callback;
- $ColorCallbackType = 1; // ColorI
-
- // Set the RGBA displays accordingly
- %red = getWord(%currentColor, 0);
- %green = getWord(%currentColor, 1);
- %blue = getWord(%currentColor, 2);
- %alpha = getWord(%currentColor, 3);
-
- setColorInfo(%red, %green, %blue, %alpha);
-
- ColorBlendSelect.pickColor = %red SPC %green SPC %blue SPC "1.0";
- ColorBlendSelect.updateColor();
- ColorAlphaSelect.setValue(%alpha);
-
- Canvas.pushDialog(ColorPickerDlg);
- }
-
- function GetColorF( %currentColor, %callback )
- {
- $ColorPickerCallback = %callback;
- $ColorCallbackType = 2; // ColorF
-
- // Set the RGBA displays accordingly
- %red = getWord(%currentColor, 0);
- %green = getWord(%currentColor, 1);
- %blue = getWord(%currentColor, 2);
- %alpha = getWord(%currentColor, 3);
-
- setColorInfo(%red, %green, %blue, %alpha);
-
- ColorBlendSelect.pickColor = %red SPC %green SPC %blue SPC "1.0";
- ColorBlendSelect.updateColor();
- ColorAlphaSelect.setValue(%alpha);
-
- Canvas.pushDialog(ColorPickerDlg);
- }
-
-
- function DoColorPickerCallback()
- {
- eval( $ColorPickerCallback @ "(\"" @ constructNewColor(ColorBlendSelect.getValue(), $ColorCallbackType) @"\");" );
-
- Canvas.popDialog(ColorPickerDlg);
- }
-
- // This function updates the base color on the blend control
- function updatePickerBaseColor()
- {
- %pickColor = ColorRangeSelect.getValue();
- %red = getWord(%pickColor, 0);
- %green = getWord(%pickColor, 1);
- %blue = getWord(%pickColor, 2);
-
- ColorBlendSelect.baseColor = %red SPC %green SPC %blue SPC "1.0";
- ColorBlendSelect.updateColor();
- }
-
- // This function is used to update the text controls at the top
- function setColorInfo(%red, %green, %blue, %alpha)
- {
- Channel_R_Val.setValue("R :" SPC mCeil(%red * 255));
- Channel_G_Val.setValue("G :" SPC mCeil(%green * 255));
- Channel_B_Val.setValue("B :" SPC mCeil(%blue * 255));
- Channel_A_Val.setValue("A :" SPC mCeil(%alpha * 255));
- }
-
- // This function constructs a new color, and updates the text displays accordingly
- function constructNewColor(%pickColor, %colorType )
- {
- %red = getWord(%pickColor, 0);
- %green = getWord(%pickColor, 1);
- %blue = getWord(%pickColor, 2);
- %alpha = ColorAlphaSelect.getValue();
-
- // Update the text controls to reflect new color
- setColorInfo(%red, %green, %blue, %alpha);
- if ( %colorType == 1 ) // ColorI
- return mCeil( %red * 255 ) SPC mCeil( %green * 255 ) SPC mCeil( %blue * 255 ) SPC mCeil( %alpha * 255 );
- else // ColorF
- return %red SPC %green SPC %blue SPC %alpha;
- }
-
-
- // Functions to deal with the color dropper
- function startColorDropper()
- {
- //ColorPickerDlg.command = "ColorDropperSelect.baseColor = ColorPickerDlg.pickColor;";
- ColorPickerDlg.altCommand = $pickerUpdateControl@".setValue(constructNewColor(ColorPickerDlg.pickColor));endColorDropper();";
- ColorPickerDlg.setActive(true);
- $pickerActive = true;
- }
-
- function endColorDropper()
- {
- ColorPickerDlg.command = "";
- ColorPickerDlg.altCommand = "";
- ColorPickerDlg.setActive(false);
- $pickerActive = false;
- }
-
- function toggleColorPicker()
- {
- if ($pickerActive)
- endColorDropper();
- else
- startColorDropper();
- }
-